
#ifndef __MT6816_H__
#define __MT6816_H__

#include "mt6816_msp_init.h"
#include <stdbool.h>
#include "time.h"
#include "stockpile_config.h"

typedef struct {
    /* 采集数据 */
    unsigned short rawData;     // SPI 读取到的数据
    /* 输出数据 */
    unsigned short rawAngle;    // SPI 输出的角度
    unsigned char noMagFlag;    // 磁铁数据有效标志
    unsigned char checksumFlag; // 奇偶校验位
} SpiRawData;

extern SpiRawData spiRawData;

/********** MT6816 **********/
typedef struct {
    /* 原始角度数据 */
    unsigned short rawAngle;
    /* 校准的角度数据 */
    unsigned short rectifiedAngle; // 角度
    unsigned char rectifyValid;    // 数据可信标志
} AngleData;

extern AngleData angleData;
extern unsigned short * readQuickCALData;

extern unsigned short MT6816_SendAndRead16Bits(unsigned short data);
extern void MT6816_GetAngleData();
extern void MT6816_GetRawAngle();
extern void MT6816_GetRectifiedAngle();
extern void MT6816_GetRectifiedState();

#endif
